home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickDraw3D 1.6 SDK / Mac Interfaces / PInterfaces / QD3DWinViewer.p < prev    next >
Encoding:
Text File  |  1999-05-18  |  13.5 KB  |  337 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DWinViewer.p
  3.  
  4.      Contains:    Win32 Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.6
  7.                  Release:    QuickTime 4.0
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DWinViewer;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DWINVIEWER__}
  27. {$SETC __QD3DWINVIEWER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DWinViewerIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __QD3DGROUP__}
  37. {$I QD3DGroup.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN POWER}
  43. {$LibExport+}
  44.  
  45. {$IFC TARGET_OS_WIN32 }
  46.  
  47. TYPE
  48.     TQ3ViewerObject                        = Ptr;
  49. {$IFC TYPED_FUNCTION_POINTERS}
  50.     TQ3ViewerDrawingCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): TQ3Status; C;
  51. {$ELSEC}
  52.     TQ3ViewerDrawingCallbackMethod = ProcPtr;
  53. {$ENDC}
  54.  
  55. {$IFC TYPED_FUNCTION_POINTERS}
  56.     TQ3ViewerWindowResizeCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): TQ3Status; C;
  57. {$ELSEC}
  58.     TQ3ViewerWindowResizeCallbackMethod = ProcPtr;
  59. {$ENDC}
  60.  
  61. {$IFC TYPED_FUNCTION_POINTERS}
  62.     TQ3ViewerPaneResizeNotifyCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): TQ3Status; C;
  63. {$ELSEC}
  64.     TQ3ViewerPaneResizeNotifyCallbackMethod = ProcPtr;
  65. {$ENDC}
  66.  
  67.  
  68. CONST
  69.     kQ3ViewerShowBadge            = $01;
  70.     kQ3ViewerActive                = $02;
  71.     kQ3ViewerControllerVisible    = $04;
  72.     kQ3ViewerButtonCamera        = $08;
  73.     kQ3ViewerButtonTruck        = $10;
  74.     kQ3ViewerButtonOrbit        = $20;
  75.     kQ3ViewerButtonZoom            = $40;
  76.     kQ3ViewerButtonDolly        = $80;
  77.     kQ3ViewerButtonReset        = $0100;
  78.     kQ3ViewerButtonNone            = $0200;
  79.     kQ3ViewerOutputTextMode        = $0400;
  80.     kQ3ViewerDraggingInOff        = $0800;
  81.     kQ3ViewerButtonOptions        = $1000;
  82.     kQ3ViewerPaneGrowBox        = $2000;
  83.     kQ3ViewerDefault            = $8000;
  84.  
  85.  
  86.     kQ3ViewerEmpty                = 0;
  87.     kQ3ViewerHasModel            = $01;
  88.     kQ3ViewerHasUndo            = $02;
  89.  
  90.  
  91. TYPE
  92.     TQ3ViewerCameraView         = SInt32;
  93. CONST
  94.     kQ3ViewerCameraRestore        = 0;
  95.     kQ3ViewerCameraFit            = 1;
  96.     kQ3ViewerCameraFront        = 2;
  97.     kQ3ViewerCameraBack            = 3;
  98.     kQ3ViewerCameraLeft            = 4;
  99.     kQ3ViewerCameraRight        = 5;
  100.     kQ3ViewerCameraTop            = 6;
  101.     kQ3ViewerCameraBottom        = 7;
  102.  
  103.  
  104. {*****************************************************************************
  105.  **                                                                             **
  106.  **                                WM_NOTIFY structures                           **
  107.  **                                                                             **
  108.  ****************************************************************************}
  109.  
  110. TYPE
  111.     TQ3ViewerDropFilesPtr = ^TQ3ViewerDropFiles;
  112.     TQ3ViewerDropFiles = RECORD
  113.         _nmhdr:                    NMHDR;
  114.         hDrop:                    HANDLE;
  115.     END;
  116.  
  117.     TQ3ViewerSetViewPtr = ^TQ3ViewerSetView;
  118.     TQ3ViewerSetView = RECORD
  119.         _nmhdr:                    NMHDR;
  120.         view:                    TQ3ViewerCameraView;
  121.     END;
  122.  
  123.     TQ3ViewerSetViewNumberPtr = ^TQ3ViewerSetViewNumber;
  124.     TQ3ViewerSetViewNumber = RECORD
  125.         _nmhdr:                    NMHDR;
  126.         number:                    UInt32;
  127.     END;
  128.  
  129.     TQ3ViewerButtonSetPtr = ^TQ3ViewerButtonSet;
  130.     TQ3ViewerButtonSet = RECORD
  131.         _nmhdr:                    NMHDR;
  132.         button:                    UInt32;
  133.     END;
  134.  
  135. {*****************************************************************************
  136.  **                                                                             **
  137.  **                                WM_NOTIFY defines                               **
  138.  **                                                                             **
  139.  ****************************************************************************}
  140. {*****************************************************************************
  141.  **                                                                             **
  142.  **                            Win32 Window Class Name                           **
  143.  **        Can be passed as a parameter to CreateWindow or CreateWindowEx       **
  144.  **                                                                             **
  145.  ****************************************************************************}
  146.  
  147. {*****************************************************************************
  148.  **                                                                             **
  149.  **                            Win32 Clipboard type                              **
  150.  **                                                                             **
  151.  ****************************************************************************}
  152. {*****************************************************************************
  153.  **                                                                             **
  154.  **        Return viewer version number                                         **
  155.  **                                                                             **
  156.  ****************************************************************************}
  157. FUNCTION Q3WinViewerGetVersion(VAR majorRevision: UInt32; VAR minorRevision: UInt32): TQ3Status; C;
  158.  
  159. {*****************************************************************************
  160.  **                                                                             **
  161.  **        Return viewer release version number                                 **
  162.  **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  163.  **                                                                             **
  164.  ****************************************************************************}
  165. FUNCTION Q3WinViewerGetReleaseVersion(VAR releaseRevision: UInt32): TQ3Status; C;
  166.  
  167. {*****************************************************************************
  168.  **                                                                             **
  169.  **                        Creation and destruction                             **
  170.  **                Note that this is not a QuickDraw 3D object                     **
  171.  **                                                                             **
  172.  ****************************************************************************}
  173. FUNCTION Q3WinViewerNew(window: HWND; {CONST}VAR rect: RECT; flags: UInt32): TQ3ViewerObject; C;
  174. FUNCTION Q3WinViewerDispose(viewer: TQ3ViewerObject): TQ3Status; C;
  175.  
  176. {*****************************************************************************
  177.  **                                                                             **
  178.  **                    Functions to attach data to a WinViewer                     **
  179.  **                                                                             **
  180.  ****************************************************************************}
  181. FUNCTION Q3WinViewerUseFile(viewer: TQ3ViewerObject; fileHandle: HANDLE): TQ3Status; C;
  182. FUNCTION Q3WinViewerUseData(viewer: TQ3ViewerObject; data: UNIV Ptr; size: UInt32): TQ3Status; C;
  183.  
  184. {*****************************************************************************
  185.  **                                                                             **
  186.  **                Functions to write data out from the WinViewer                 **
  187.  **                                                                             **
  188.  ****************************************************************************}
  189. FUNCTION Q3WinViewerWriteFile(viewer: TQ3ViewerObject; fileHandle: HANDLE): TQ3Status; C;
  190. FUNCTION Q3WinViewerWriteData(viewer: TQ3ViewerObject; data: UNIV Ptr; dataSize: UInt32; VAR actualDataSize: UInt32): TQ3Status; C;
  191.  
  192. {*****************************************************************************
  193.  **                                                                             **
  194.  **        Use this function to force the WinViewer to re-draw                     **
  195.  **                                                                             **
  196.  ****************************************************************************}
  197. FUNCTION Q3WinViewerDraw(viewer: TQ3ViewerObject): TQ3Status; C;
  198. FUNCTION Q3WinViewerDrawContent(viewer: TQ3ViewerObject): TQ3Status; C;
  199. FUNCTION Q3WinViewerDrawControlStrip(viewer: TQ3ViewerObject): TQ3Status; C;
  200.  
  201. {*****************************************************************************
  202.  **                                                                             **
  203.  **        Function used by the WinViewer to filter and handle events             **
  204.  **                                                                             **
  205.  ****************************************************************************}
  206. FUNCTION Q3WinViewerMouseDown(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  207. FUNCTION Q3WinViewerContinueTracking(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  208. FUNCTION Q3WinViewerMouseUp(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  209.  
  210. {*****************************************************************************
  211.  **                                                                             **
  212.  **        This function returns a Bitmap of the contents of the                  **
  213.  **        WinViewer's window.  The application should dispose the Bitmap.         **
  214.  **                                                                             **
  215.  ****************************************************************************}
  216. FUNCTION Q3WinViewerGetBitmap(viewer: TQ3ViewerObject): HBITMAP; C;
  217.  
  218. {*****************************************************************************
  219.  **                                                                             **
  220.  **                    Calls for dealing with Buttons                             **
  221.  **                                                                             **
  222.  ****************************************************************************}
  223. FUNCTION Q3WinViewerGetButtonRect(viewer: TQ3ViewerObject; button: UInt32; VAR rectangle: RECT): TQ3Status; C;
  224. FUNCTION Q3WinViewerGetCurrentButton(viewer: TQ3ViewerObject): UInt32; C;
  225. FUNCTION Q3WinViewerSetCurrentButton(viewer: TQ3ViewerObject; button: UInt32): TQ3Status; C;
  226.  
  227. {*****************************************************************************
  228.  **                                                                             **
  229.  **        Functions to set/get the group to be displayed by the WinViewer.     **
  230.  **                                                                             **
  231.  ****************************************************************************}
  232. FUNCTION Q3WinViewerUseGroup(viewer: TQ3ViewerObject; group: TQ3GroupObject): TQ3Status; C;
  233. FUNCTION Q3WinViewerGetGroup(viewer: TQ3ViewerObject): TQ3GroupObject; C;
  234.  
  235. {*****************************************************************************
  236.  **                                                                             **
  237.  **        Functions to set/get the color used to clear the window                 **
  238.  **                                                                             **
  239.  ****************************************************************************}
  240. FUNCTION Q3WinViewerSetBackgroundColor(viewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): TQ3Status; C;
  241. FUNCTION Q3WinViewerGetBackgroundColor(viewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): TQ3Status; C;
  242.  
  243. {*****************************************************************************
  244.  **                                                                             **
  245.  **        Getting/Setting a WinViewer's View object.                             **
  246.  **                                                                             **
  247.  ****************************************************************************}
  248. FUNCTION Q3WinViewerGetView(viewer: TQ3ViewerObject): TQ3ViewObject; C;
  249. FUNCTION Q3WinViewerRestoreView(viewer: TQ3ViewerObject): TQ3Status; C;
  250.  
  251. {*****************************************************************************
  252.  **                                                                             **
  253.  **        Calls for setting/getting WinViewer flags                             **
  254.  **                                                                             **
  255.  ****************************************************************************}
  256. FUNCTION Q3WinViewerSetFlags(viewer: TQ3ViewerObject; flags: UInt32): TQ3Status; C;
  257. FUNCTION Q3WinViewerGetFlags(viewer: TQ3ViewerObject): UInt32; C;
  258.  
  259. {*****************************************************************************
  260.  **                                                                             **
  261.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  262.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  263.  **        or the current dimensions of the window (if you do a Set).             **
  264.  **                                                                             **
  265.  ****************************************************************************}
  266. FUNCTION Q3WinViewerSetBounds(viewer: TQ3ViewerObject; VAR bounds: RECT): TQ3Status; C;
  267. FUNCTION Q3WinViewerGetBounds(viewer: TQ3ViewerObject; VAR bounds: RECT): TQ3Status; C;
  268. FUNCTION Q3WinViewerSetDimension(viewer: TQ3ViewerObject; width: UInt32; height: UInt32): TQ3Status; C;
  269. FUNCTION Q3WinViewerGetDimension(viewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): TQ3Status; C;
  270. FUNCTION Q3WinViewerGetMinimumDimension(viewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): TQ3Status; C;
  271.  
  272. {*****************************************************************************
  273.  **                                                                             **
  274.  **                            Window related calls                             **
  275.  **                                                                             **
  276.  ****************************************************************************}
  277. FUNCTION Q3WinViewerSetWindow(viewer: TQ3ViewerObject; window: HWND): TQ3Status; C;
  278. FUNCTION Q3WinViewerGetWindow(viewer: TQ3ViewerObject): HWND; C;
  279. FUNCTION Q3WinViewerGetViewer(theWindow: HWND): TQ3ViewerObject; C;
  280. FUNCTION Q3WinViewerGetControlStrip(viewer: TQ3ViewerObject): HWND; C;
  281.  
  282. {*****************************************************************************
  283.  **                                                                             **
  284.  **        Adjust Cursor provided for compatibility with Mac Viewer             **
  285.  **                                                                             **
  286.  ****************************************************************************}
  287. FUNCTION Q3WinViewerAdjustCursor(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): TQ3Boolean; C;
  288. FUNCTION Q3WinViewerCursorChanged(viewer: TQ3ViewerObject): TQ3Status; C;
  289.  
  290. {*****************************************************************************
  291.  **                                                                             **
  292.  **        Returns the state of the WinViewer.  See the constant defined at the **
  293.  **        top of this file.                                                     **
  294.  **                                                                             **
  295.  ****************************************************************************}
  296. FUNCTION Q3WinViewerGetState(viewer: TQ3ViewerObject): UInt32; C;
  297.  
  298. {*****************************************************************************
  299.  **                                                                             **
  300.  **                            Clipboard utilities                                 **
  301.  **                                                                             **
  302.  ****************************************************************************}
  303. FUNCTION Q3WinViewerClear(viewer: TQ3ViewerObject): TQ3Status; C;
  304. FUNCTION Q3WinViewerCut(viewer: TQ3ViewerObject): TQ3Status; C;
  305. FUNCTION Q3WinViewerCopy(viewer: TQ3ViewerObject): TQ3Status; C;
  306. FUNCTION Q3WinViewerPaste(viewer: TQ3ViewerObject): TQ3Status; C;
  307.  
  308. {*****************************************************************************
  309.  **                                                                             **
  310.  **                                Undo                                          **
  311.  **                                                                             **
  312.  ****************************************************************************}
  313. FUNCTION Q3WinViewerUndo(viewer: TQ3ViewerObject): TQ3Status; C;
  314. FUNCTION Q3WinViewerGetUndoString(viewer: TQ3ViewerObject; theString: CStringPtr; stringSize: UInt32; VAR actualSize: UInt32): TQ3Boolean; C;
  315.  
  316. {*****************************************************************************
  317.  **                                                                             **
  318.  **                            New Camera Stuff                                 **
  319.  **                                                                             **
  320.  ****************************************************************************}
  321. FUNCTION Q3WinViewerGetCameraCount(viewer: TQ3ViewerObject; VAR count: UInt32): TQ3Status; C;
  322. FUNCTION Q3WinViewerSetCameraNumber(viewer: TQ3ViewerObject; cameraNo: UInt32): TQ3Status; C;
  323. FUNCTION Q3WinViewerSetCameraView(viewer: TQ3ViewerObject; viewType: TQ3ViewerCameraView): TQ3Status; C;
  324. {$ENDC}  {TARGET_OS_WIN32}
  325.  
  326.  
  327. {$ALIGN RESET}
  328. {$POP}
  329.  
  330. {$SETC UsingIncludes := QD3DWinViewerIncludes}
  331.  
  332. {$ENDC} {__QD3DWINVIEWER__}
  333.  
  334. {$IFC NOT UsingIncludes}
  335.  END.
  336. {$ENDC}
  337.